/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.uniceub.fsw.testes.dao;

import br.uniceub.fsw.arquitetura.persistencia.dao.ConstrutorSQL;
import java.io.Serializable;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.ArrayList;
import br.uniceub.fsw.arquitetura.persistencia.dao.BaseDAO;
import br.uniceub.fsw.testes.vo.RegistrarResultadoVO;


/**
 *
 * @author Administrador
 */
public class RegistrarResultadoDAO extends BaseDAO<RegistrarResultadoVO> {

    public List<RegistrarResultadoVO> consultar(Integer idOS, String dsOS, Integer idEstadoOS) {

        StringBuffer query = new StringBuffer("");
        List<RegistrarResultadoVO> lista = new ArrayList<RegistrarResultadoVO>();
        query.append("Select o.id_ordemservico, o.ds_ordemservico, s.ds_statusordemservico, ").
                    append(" p.ds_projeto , o.dh_inicioPrevista ").
                    append(" from tb_ordemservico as o inner join tb_statusordemservico as s on o.cd_statusordemservico = s.id_statusordemservico ").
                    append(" inner join tb_projeto as p on o.cd_projeto = p.id_projeto ").append(" WHERE 1 = 1");


        if(idOS!=null){
            query.append(" AND o.id_ordemservico = ").append(idOS);
        }
        if(dsOS!=null){
            query.append(" AND o.ds_ordemservico LIKE '%").append(dsOS).append("%'");
        }
        if(idEstadoOS!=null){
            query.append(" AND s.ds_statusordemservico = ").append(idEstadoOS);
        }
        
        lista = consultar(query.toString(), null);

        return lista;

    }

    @Override
    public void inserir(RegistrarResultadoVO entidade) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void alterar(RegistrarResultadoVO entidade) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void excluir(RegistrarResultadoVO entidade) {
       ConstrutorSQL query = new ConstrutorSQL();

        query.append("DELETE FROM tb_ordemservico");
        query.append("WHERE ID_ORDEMSERVICO = ?");

        executarAlteracao(query.toString(), criarParametros(entidade.getIdOrdemServico()));
    }

    @Override
    public RegistrarResultadoVO consultarPorId(Serializable id) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public List<RegistrarResultadoVO> consultarPorExemplo(RegistrarResultadoVO exemplo) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    protected RegistrarResultadoVO extrairObjetoResultado(ResultSet rs) throws SQLException {
        RegistrarResultadoVO template = new RegistrarResultadoVO();
        
        template.setIdOrdemServico(rs.getInt(1));
        template.setDsOrdemServico(rs.getString(2));
        template.setDsStatusOrdemServico(rs.getString(3));
        template.setDsProjeto(rs.getString(4));
        template.setDhInicioPrevista(rs.getString(5));
//        template.setDhInicio(rs.getString(5));
//        template.setDhFim(rs.getString(6));

        return template;
    }

    @Override
    protected void mapearQueryParaExemplo(ConstrutorSQL query, RegistrarResultadoVO exemplo) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}
